import { qiankunWindow } from 'vite-plugin-qiankun/dist/helper';
import type { RouteRecordRaw } from 'vue-router';
import { createRouter, createWebHistory } from 'vue-router';

// 导入dashboard路由
import dashboardRoutes from './dashboard';

const routes: Array<RouteRecordRaw> = [
  ...dashboardRoutes,
  {
    path: '/:pathMatch(.*)*',
    component: () => import('@/views/NotFound.vue'),
    meta: {
      hidden: true,
    },
  },
];

// 从window获取路由基础路径，在微前端环境中会被设置
const getRouterBase = () => {
  // 使用vite-plugin-qiankun提供的方法检测微前端环境
  if (qiankunWindow.__POWERED_BY_QIANKUN__) {
    console.log('[Router] 微前端模式，使用 /dashboard 基础路径');
    return '/dashboard';
  }

  // 只基于 qiankun 标志判断，不再根据路径判断
  if (window.__POWERED_BY_QIANKUN__) {
    console.log('[Router] 微前端模式，使用 /dashboard 基础路径');
    return '/dashboard';
  }

  // 独立运行时使用根路径
  console.log('[Router] 独立模式，使用 / 基础路径');
  return '/';
};

const router = createRouter({
  history: createWebHistory(getRouterBase()),
  routes,
  scrollBehavior(to, from, savedPosition) {
    if (savedPosition) {
      return savedPosition;
    }
    return { top: 0 };
  },
});

export default router;
